package wahadlo.gui;

import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JComponent;

import wahadlo.model.Model;
import wahadlo.model.ModelSupplier;
import wahadlo.model.StandardModel;

/**
 * Klasa reprezentuje komponent odpowiadający za przyjmowanie danych liczbowych.
 * 
 * @author Koziołek
 * 
 */
public class DataPanel extends JComponent implements ModelSupplier {
	private static final long serialVersionUID = 1L;

	/**
	 * panel -masa wahadła
	 */
	private SimpleDataPanel weigth;
	/**
	 * panel -długość wahadła
	 */
	private SimpleDataPanel length;
	/**
	 * panel -wychylenie początkowe
	 */
	private SimpleDataPanel inclination;
	/**
	 * panel -współczynnik tłumienia
	 */
	private SimpleDataPanel forcing;

	public DataPanel() {
		init();
	}

	private void init() {
		weigth = new SimpleDataPanel("Masa wahadła", "kg", "1");
		length = new SimpleDataPanel("Długość wahadła", "m", "1");
		inclination = new SimpleDataPanel("Wychylenie początkowe", "kąt", "5");
		forcing = new SimpleDataPanel("Wspł. tłumienia", "", "0");
		setLayout(new GridLayout(4, 1));

		add(weigth, 0);
		add(length, 1);
		add(inclination, 2);
		add(forcing, 3);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see wahadlo.model.ModelSupplier#getModel()
	 */
	public Model getModel() {
		StandardModel model = new StandardModel();
		model.add("weight", weigth.getModel().getProperties().get("value"));
		model.add("length", length.getModel().getProperties().get("value"));
		model.add("inclination", inclination.getModel().getProperties().get(
				"value"));
		model.add("forcing", forcing.getModel().getProperties().get("value"));
		return model;
	}

	@Override
	public Dimension getPreferredSize() {
		return super.getPreferredSize();
	}
}
